繼上次在windows上建置AlexeyAB Darknet 已經是兩年前了,隨這最近YOLOV7釋出,看到AlexeyAB也更新到最新版本,最近也手癢來重新建置,拜讀一下台灣之光 王博士 的YOLOV7,網路上比較多YOLO教學較多是base在Linux系統上,在windows上 利用Visual Studio 安裝幾經波折,以下紀錄。
windows : Win10
GPU : GeForce GTX 950M & GeForce GTX 1050Ti
CUDA : CUDA 11.8
cudnn : 8.6
YOLO : Darknet AlexeyAB fork github
https://sourceforge.net/projects/opencvlibrary/files/opencv-win/
直接選擇最新的安裝,安裝基本上就無腦下一步
紀錄安裝路徑e.g : D:\opencv
從AlexeyAB 的Github下載Darknet ZIP https://github.com/AlexeyAB/darknet
解壓縮
進入build\darknet 資料夾
接下來分兩個部分,依據有沒有要使用GPU來決定要編譯兩個檔案
使用GPU → darknet.sln
& yolo_cpp_dll.sln
不使用GPU → darknet_no_gpu.sln
& yolo_cpp_dll_no_gpu.sln
以下以使用GPU作為安裝範例,如不使用GPU跳過CUDA相關設定即可以。
利用Visual studio 2022開啟darknet.sln。
在方案總管darknet上按右鍵,選擇property(屬性)。
將Configuration選擇Release,Platform選擇x64。
VC++ Directories → Include Directories(Include 目錄) → 依據opencv安裝位置設定路徑
須設定
build/include
build/include/opencv2
VC++ Directories → Library Directories(程式庫目錄)→ 依據opencv安裝位置設定路徑
Linker (連結器)→ Input(輸入) → Additional Dependencies(其他相依性) → 加入opencv_world340.lib
============↓ GPU 設定 ↓============
注意 : 不同版本darknet 所需求之CUDA/Cudnn 版本不同,需要安裝對應版本
此處使用版本
將cudnn的三個資料夾bin、include、lib中的檔案(全數檔案)
複製到cuda的安裝目錄:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 相應的資料夾內
CUDA C/C++ → CUDA Toolkit Custom Dir → 依據CUDA安裝位置設定路徑
============↑ GPU 設定 ↑============
在按下Visual Studio 2022 的Debugger 進行編譯
如果編譯成功,就會在x64資料夾下多一個darknet.exe檔案
利用Visual studio yolo_cpp_dll.sln。再次執行上述步驟編譯。← 生成DLL檔案,可以讓pyhton呼叫使用。
如果編譯成功,就會在x64資料夾下多一個yolo_cpp_dll.dll檔案
完成後進行簡單測試(測試方法如下),顯示缺少了幾個dll,
缺少的dll可以到 Nvidia doc 下載,解壓縮後將zlibwapi.dll丟到darknet.exe相同資料夾
下載weight檔,依相應的需求到AlexeyAB Github 上下載weight檔案。
在這邊我會習慣建立一個'weights'資料夾,將所有weight檔案放在這個資料夾,方便後續管理。
開啟Terminal 進入x64資料夾,就可以測試簡單範例。.\darknet.exe detect .\cfg\yolov3-tiny.cfg .\weights\yolov3-tiny.weights .\data\dog.jpg
.\darknet.exe detect .\cfg\yolov3.cfg .\weights\yolov3.weights .\data\dog.jpg
.\darknet.exe detect .\cfg\yolov4.cfg .\weights\yolov4.weights .\data\dog.jpg
如果想要使用自己的.data檔.\darknet.exe detector test .\obj.data .\yolov3-tiny.cfg .\weights\yolov3-tiny.weights .\data\dog.png
想要針對Video測試也可以./darknet detector demo cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights .\data\mission-impossible-fallout-2018-official-trailer-paramount-pictures.mp4
使用python呼叫yolo_cpp_dll.dll使用時,須將以下的dll放入同一個資料夾。(詳後補
training指令
.\darknet.exe detector train .\obj.data .\yolov3-tiny.cfg
\
您好:
請教如果我不使用GPU且不用VS code,但是用PyCharm,那可以安裝Darknet嗎?要如何安裝?謝謝!!!
您好 如果您要用python 直接完成也可以喔!!!
直接import github裡的 darknet.py
就可以直接使用
network, class_names, class_colors = darknet.load_network(
args.config_file,
args.data_file,
args.weights,
batch_size=args.batch_size
)
https://github.com/AlexeyAB/darknet/blob/master/darknet_images.py